﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSEPT
{
    public class Tag
    {
        public Tag()
        {
            init(0, new User(), new Event(), String.Empty, DateTime.Now, new Photo());
        }
        public Tag(int id)
        {
            init(id, new User(), new Event(), String.Empty, DateTime.Now, new Photo());
        }
        public Tag(int userid, int eventid, string bibnum, DateTime datetagged, int photoID)
        {
            init(0, new User(userid), new Event(userid), bibnum, datetagged, new Photo(photoID));
        }
        public Tag(User user, Event tagevent, string bibnum, DateTime datetagged, Photo photo)
        {
            init(0, user, tagevent, bibnum, datetagged, photo);
        }
        public Tag(int id, User user, Event tagevent, string bibnum, DateTime datetagged, Photo photo)
        {
            init(id, user, tagevent, bibnum, datetagged, photo);
        }
        public void init(int id, User taggedby, Event tagevent, string bibnum, DateTime datetagged, Photo taggedphoto)
        {
            ID = id;
            TaggedBy = taggedby;
            TagEvent = tagevent;
            BibNum = bibnum;
            DateTagged = datetagged;
            TaggedPhoto = taggedphoto;
        }

        private int _ID;

        public int ID
        {
            get { return _ID; }
            set { _ID = value; }
        }
        
        private User _TaggedBy;

        public User TaggedBy
        {
            get { return _TaggedBy; }
            set { _TaggedBy = value; }
        }
        
        private Event _TagEvent;

        public Event TagEvent
        {
            get { return _TagEvent; }
            set { _TagEvent = value; }
        }
        
        private string _BibNum;

        public string BibNum
        {
            get { return _BibNum; }
            set { _BibNum = value; }
        }
        
        private DateTime _DateTagged;

        public DateTime DateTagged
        {
            get { return _DateTagged; }
            set { _DateTagged = value; }
        }
        
        private Photo _TaggedPhoto;

        public Photo TaggedPhoto
        {
            get { return _TaggedPhoto; }
            set { _TaggedPhoto = value; }
        }
        
    }
}
